1. Field of Invention
The field of the present invention relates in general to a system for, and method of, distributing processes in a computer network system. More particularly, the field of the invention relates to a system and method for distributing processes efficiently over a high speed network with multiple computer hosts and network attached shared storage.
2. Copyright Authorization
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
3. Background
It is common in computer systems to share file information with multiple computers through a variety of communication means. Some of the common ways computers send file information to other computers is through the use of modems and networks. Modems are very slow compared to networks. Networks require file servers, and for high speed networks, the speed of the file server becomes a bottleneck. This bottleneck is an impediment to applications needing to share the file information at a speed greater than the file server can keep up with. File servers operate under what is called the client/server paradigm. Under this paradigm a client makes requests of a server that then carries out the requests. In the case of a file server, there may be multiple clients making requests of the file server. The file server receives the requests, queues them, and then services them one at a time. In this way file system consistency is maintained because one entity, the file server, is operating upon the data structures that control the file system where the file information resides in a logical and coherent manner on a storage medium.
Some advancements in network technology have allowed various means to attach storage directly on the network, just as one would attach a printer to the network as a network attached peripheral (NAP). The NAP paradigm allows the removal of speed bottlenecks associated with a file server, but at the price of flexibility. Under the NAP paradigm there is no method to maintain file system consistency. This amounts to limiting the multiple computers to read-only access of the file information thus preventing the modification of the file information. If multiple computers where to modify the file information then the file system would become corrupt because there is no way to maintain the data structures of the file system in a logical and coherent manner on the storage medium because there are multiple entities trying to modify the file system with no means of maintaining the coherency of cached file system data structures. Therefore, these NAP type systems manifest themselves as high speed, read-only, file information sharing systems.
What is needed is an improved system and method for sharing file information. Preferably such a system would remove the file server bottleneck to increase access speed, as is provided by the NAP paradigm, while at the same time maintain the flexibility of the Client/Server paradigm.
It is common in computer systems for calculation intensive processes to take an enormous amount of time to come to completion. In multi-processor systems, the calculation may be expedited by the distribution of the process over the processors present in the computer. This is possible because the processors that are resident in a single machine share the same physical resources (e.g. PCI, Memory, Disk, and CPU busses ) that the processes are based on, in a direct attached manner. The disadvantage to this approach is that it requires very expensive and uncommon hardware equipment, and software has to be written to take advantage of this capability on a particular hardware model. In addition, the processing power is strictly limited to the number of CPU's that can be put in a single computer system. The single machine, multi-processor approach is further limited by the severe bottlenecks that can be created as the physical resources are divided among an increasing number of CPU's.
A second approach is the distribution of the process among multiple processors that are attached through a network system. This approach is attractive since the number of participating processors can be virtually unlimited, and the type of machines used can be inexpensive and common. A number of disadvantages, however, have made this approach extremely inefficient and in many cases, virtually useless. The primary drawback to network process distribution, is that the communication of the information required by each machine to run the process, as well as, the communication of process results can be very slow as it needs to go over a typically slow network connection, through a traditional client/server network (along with the associated bottlenecks of the client/server model). These limitations produce very large processing overheads in cases that require large amounts of data on input and/or output. The efficiency of the distributed process is further degraded by the increased network traffic as more machines are added to the process.
What is needed is an improved system and method for distributed processing over a network. Such a system would remove the bottlenecks and disadvantages associated with current distributed networks, while at the same time maintaining its advantages. Such a system would further allow the distribution of processes to function and be managed in a cross platform environment.